$(function(){
    getAdvertList();

    $('#side-menu ul').eq(2).addClass('in');

    //弹出广告表单
    $('#add_advert_id').on('click',function () {
        $('#startTime').val('');
        $('#endTime').val('');
        $('#advertContent').val('');
        $('#addAdvertModal').modal("show");
    })

    //提交
    $('#btn_add_advert').on('click',function () {
        var flag = $('#add_advert_form').valid();
        if(flag){
            addAdvertInfo();
            $('#addAdvertModal').modal('hide');
        }else{
            return false;
        }
    });

    /**
     *  功能描述：添加用户验证
     */

    $('#add_advert_form').validate({
        errorElement:'span',
        errorClass:'error',
        focusInvalid:false,
        ignore:'',
        rules:{
            startTime:{
                required:true
            },
            endTime: {
                required: true
            },
            advertContent:{
                required: true
            }
        },
        messages:{

            startTime:{
                required:'请选择开始时间'
            },
            endTime:{
                required:'请选中结束时间'
            },
            advertContent:{
                required:'请输入广告内容'
            }
        },
        invalidHandler:function(event,validator){
            $('.alert-success').hide();
            $('.alert-error').show();
        },
        highlight:function(element){
            $(element).closest('.help-inline').removeClass('ok');
            $(element).closest('.form-group').removeClass('success').addClass('error');
        },
        unhighlight:function(element){
            $(element).closest('.form-group').removeClass('error');
        },
        success:function(label){
            label.addClass('valid').addClass('help-inline ok').closest('.form-group').removeClass('error').addClass('success');
        },
        submitHandler:function(form){
            $('.alert-success').show();
            $('.alert-error').hide();
        }
    });


    var start = {
        elem: '#startTime',
        event:"focus",
        istime: true,
        format: 'YYYY-MM-DD hh:mm:ss', //自动生成的时间格式
        min: '1900-01-01 00:00:00', //创建当前日期为最小日期
        max: '2099-06-16 23:59:59', //创建最大日期
        choose: function (datas) {
            end.min = datas; //开始日选好后，重置结束日的最小日期
            end.start = datas //将结束日的初始值设定为开始日
        }
    };
    var end = {
        elem: '#endTime',
        event:"focus",
        istime: true,
        format: 'YYYY-MM-DD hh:mm:ss', //自动生成的时间格式
        min: '1900-01-01 00:00:00',
        max: '2099-06-16 23:59:59', //创建最大日期
        choose: function (datas) {
            start.max = datas; //结束日选好后，重置开始日的最大日期
        }
    };
    laydate(start);
    laydate(end);
});



/**
 *  功能描述：获取信息列表
 *  请求方式：GET
 *  请求地址：/api/advert/list
 *  函数名称：getAdvertList
 */

function getAdvertList(){
    $.ajax({
        url: whole_path+'/api/advert/list',
        type: 'GET',
        dataType: 'json',
        cache:false,
        data: $('#advert_form').serialize(),
        beforeSend:function(data){
            $.progressBar({message:'<p>正在努力加载数据...</p>',modal:true,canCancel:true});
        },
        success:function(data){
            if(data.status == 0) {
                var json = data.data;
                var list = json.result;
                var temp = "";
                if (list != null && list.length>0){
                    $.each(list, function (index, item) {
                        var content = '';
                        if(item.advertContent != null){
                            content = item.advertContent.toString();
                            if (content.length > 10 && content != 0){
                                content = content.substring(0,10)+"...";
                            }else {
                                content
                            }
                        }
                        var modify,operate = '';
                        var status = item.beUsed;
                        switch (status){
                            case 0:
                                status = '禁用'
                                operate = ' <a onclick="modifyStatus('+item.id+',1)" class="btn-sm btn-primary" title="启用"><i class="fa fa-check"></i></a>  ';
                                break;
                            case 1:
                                status = '启用'
                                operate = ' <a onclick="modifyStatus('+item.id+',0)" class="btn-sm btn-default" title="禁用"><i class="fa fa-close"></i></a>  ';
                                break;
                        }
                        modify = '<a class="btn-sm btn-info" onclick="editorAdvert('+item.id+')"  title="编辑"><i class="fa fa-pencil-square-o"></i></a>&nbsp;'
                        temp += '<tr>'
                            + '<td data-title="开始时间">' + timestampFormat(item.startTime)  + '</td>'
                            + '<td data-title="结束时间">' + timestampFormat(item.endTime)  + '</td>'
                            + '<td data-title="广告内容" style="color:#0b94ea;max-width:200px;white-space:nowrap; overflow:hidden; text-overflow:ellipsis" data-container="body" data-toggle="popover" data-trigger="hover" data-placement="top" data-content="'+item.advertContent+'">' + content + '</td>'
                            + '<td data-title="广告状态">' + status + '</td>'
                            + '<td data-title="操作">' + modify+operate + '</td>'
                            + '</tr>';
                    })
                    $('#advert_list tbody').html(temp);
                    $("[data-toggle='popover']").popover();

                    page('#pagination', json.pagecount, json.pageindex, json.pagesize, getAdvertList, '#pageNum');

                }else{
                    $.toast("没有查到数据",3000);
                    $('#advert_list tbody').html('');
                    if($('#pagination').html().length > 0){
                        $('#pagination').jqPaginator('destroy');
                    }
                }
            }
        },
        complete:function(){
            $.progressBar().close();
        },
        error: function(XMLHttpRequest, textStatus, errorThrown){
            $.toast('服务器未响应,请稍候重试',5000);
        }
    })
}

/**
 *  功能描述：添加修改
 *  请求方式：POST
 *  请求地址：/api/advert/editor
 *  函数名称：addAdvertInfo
 */
function addAdvertInfo() {
    $.ajax({
        url: whole_path+'/api/advert/editor',
        type: 'POST',
        dataType: 'json',
        data: $('#add_advert_form').serialize(),
        beforeSend:function(data){
            $.progressBar({message:'<p>正在努力加载数据...</p>',modal:true,canCancel:true});
        },
        success:function(data){
            if(data.status == 0) {
                $.toast("操作成功",1000);
                getAdvertList();
            }
        },
        complete:function(){
            $.progressBar().close();
        },
        error: function(XMLHttpRequest, textStatus, errorThrown){
            $.toast('服务器未响应,请稍候重试',5000);
        }
    })
}


/**
 *  功能描述：获取详情
 *  请求方式：GET
 *  请求地址：/api/advert/detail
 *  函数名称：editorAdvert
 */
function editorAdvert(id) {
    $('#addAdvertModal').modal('show');
    $.ajax({
        url:whole_path+ '/api/advert/detail',
        type: 'GET',
        dataType: 'json',
        data: {id:id},
        beforeSend:function(){
            $.progressBar({message:'<p>正在努力加载数据...</p>',modal:false,canCancel:true});
        },
        success:function(data){
            if(data.status == 0){
                $('#myModalLabel').text('修改广告');
                var json = data.data;
                $('input[name=id]').val(json.id);
                $('input[name=startTime]').val(timestampFormat(json.startTime));
                $('input[name=endTime]').val(timestampFormat(json.endTime));
                $('#advertContent').val(json.advertContent);
            }else{
                $.toast(data.msg,3000);
            }

        },
        complete:function(){
            $.progressBar().close();
        },
        error:function(XMLHttpRequest,textStatus,errorThrown){
            $.toast('服务器未响应,请稍候重试',5000);
        }
    })
}

/**
 *  功能描述：启用禁用
 *  请求方式：POST
 *  请求地址：/api/advert/modify_status
 *  函数名称：modifyStatus
 */
function modifyStatus(id,status) {
    $.ajax({
        url: whole_path+'/api/advert/modify_status',
        type: 'POST',
        dataType: 'json',
        data: {
            id:id,
            status:status
        },
        beforeSend:function(data){
            $.progressBar({message:'<p>正在努力加载数据...</p>',modal:true,canCancel:true});
        },
        success:function(data){
            if(data.status == 0) {
                $.toast("操作成功",1000);
                getAdvertList();
            }
        },
        complete:function(){
            $.progressBar().close();
        },
        error: function(XMLHttpRequest, textStatus, errorThrown){
            $.toast('服务器未响应,请稍候重试',5000);
        }
    })
}
